﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace mrp16062010.CizelgeCizim
{
    partial class cizelgecizim : Form
    {
        List<isMerkeziPanel> PanelSinifiList= new List<isMerkeziPanel>();
        Cizelge cizelge;
        isMerkeziPanel Anapanel;
        Graphics g;
        Pen kalem;
        bool Tip;
        public cizelgecizim(Cizelge cizelge, bool tip)
        { 
            InitializeComponent();
            Tip = tip;
            g = this.CreateGraphics();
            this.cizelge = cizelge;
            kalem = new Pen(Color.Black, 9);
            isMerkeziPanel panel;
            Anapanel = new isMerkeziPanel();
            int sayac = 0;
         
            foreach (IsMerkezi IM in cizelge.IsMerkezleri)
            {
                panel = new isMerkeziPanel();
                panel.Height = 30;
                panel.Width = 100000;
                panel.Location = new Point(0, sayac* 35);
                sayac++;
                panel.IMGecis = IM;
                panel.Sayi = sayac;
                Anapanel.Controls.Add(panel);
                PanelSinifiList.Add(panel);
                panel.BackColor = Color.White;
            }
            Anapanel.Width = 100000;
            Anapanel.Height = 20000;
            this.Controls.Add(Anapanel);
            foreach (CizelgeIsMerkezi ci in cizelge.Merkezler)
            {
                var listeNormal = from x in ci.IsListe
                                  where x.TatilMi != true
                                  //orderby x.SimulasyonBilgisi.IslemeTarihi.BaslangicTarihi
                                  select x;
                var listeTatil = from x in ci.IsListe
                                  where x.TatilMi == true

                                  select x;
                foreach (IsParcasi ip in listeNormal)
                {
                    cizim(ip);
                }
                foreach (IsParcasi ip in listeTatil)
                {
                    cizimTatil(ip, ci.Merkez);
                }
            }
        }

        private void cizelgecizim_Load(object sender, EventArgs e)
        {

        }

        private void cizim(IsParcasi isparcasi)
        {
            
            foreach (isMerkeziPanel PS in PanelSinifiList)
	        {
                
                    if (isparcasi.IM.Kod == (PS.IMGecis.Kod))
                    {
                        isParcasiPanel IPPanel = new isParcasiPanel();
                        IPPanel.IsParcasiBilgisi = isparcasi;
                        DateTime baslangic;
                        DateTime bitis;
                        if (Tip)
                        {
                             baslangic = isparcasi.BasTarihi;
                             bitis = isparcasi.BitTarihi;
                        }
                        else
                        {
                             baslangic = isparcasi.SimulasyonBilgisi.IslemeTarihi.BaslangicTarihi;//isparcasi.BasTarihi;
                             bitis = isparcasi.SimulasyonBilgisi.IslemeTarihi.BitisTarihi;//isparcasi.BitTarihi;
                        }
                        
                        Double sure = (baslangic.Subtract(cizelge.Tarihler.BaslangicTarihi)).TotalMinutes;
                        IPPanel.Location = new System.Drawing.Point(Convert.ToInt32(sure), 0);
                        IPPanel.Width = Convert.ToInt32(bitis.Subtract(baslangic).TotalMinutes);
                        IPPanel.Height = 30;
                        if (isparcasi.TatilMi)
                        {
                            IPPanel.BackColor = Color.Red;
                        }
                        else
                        {
                                IPPanel.BackColor = Renk.RenkUret(isparcasi.SiparisBilgi.SiparisNo);
                        }
                        
                        PS.Controls.Add(IPPanel);
                        Panel Cerceve = new Panel();
                        Cerceve.Dock = DockStyle.Left;
                        Cerceve.Height = 30;
                        Cerceve.Width = 1;
                        Cerceve.BackColor = Color.White;
                        IPPanel.Controls.Add(Cerceve);
                        Panel Cerceve2 = new Panel();
                        //Cerceve2.Location = new Point(IPPanel.Width-1, 0);
                        Cerceve2.Height = 30;
                        Cerceve2.Width = 1;
                        Cerceve2.Dock = DockStyle.Right;
                        Cerceve2.BackColor = Color.White;
                        IPPanel.Controls.Add(Cerceve2);

                        IPPanel.Click += new EventHandler(IPPanel_Click);

                        //Label Aciklama = new Label();
                        //Aciklama.Dock = DockStyle.Right;
                        //Aciklama.Text = isparcasi.BasTarihi.ToString() + " " + isparcasi.BitTarihi.ToString() + " " + isparcasi.IM.Ad;
                        //IPPanel.Controls.Add(Aciklama);

                        // g.DrawRectangle(kalem, Convert.ToInt32(isparcasi.BasTarihi), Convert.ToInt32(isparcasi.BasTarihi.Ticks), Convert.ToInt32((isparcasi.BitTarihi - isparcasi.BasTarihi).Ticks), 20);
                    }
                
	        }
          
           
        }
        private void cizimTatil(IsParcasi isparcasi, IsMerkezi merkez)
        {

            foreach (isMerkeziPanel PS in PanelSinifiList)
            {
                if (merkez.Kod == (PS.IMGecis.Kod))
                {
                    isParcasiPanel IPPanel = new isParcasiPanel();
                    IPPanel.IsParcasiBilgisi = isparcasi;

                    Double sure = (isparcasi.BasTarihi.Subtract(cizelge.Tarihler.BaslangicTarihi)).TotalMinutes;
                    IPPanel.Location = new System.Drawing.Point(Convert.ToInt32(sure), 0);
                    IPPanel.Width = Convert.ToInt32(isparcasi.BitTarihi.Subtract(isparcasi.BasTarihi).TotalMinutes);
                    IPPanel.Height = 30;

                    IPPanel.BackColor = Color.Black;

                    
                    PS.Controls.Add(IPPanel);
                    Panel Cerceve = new Panel();
                    Cerceve.Dock = DockStyle.Left;
                    Cerceve.Height = 30;
                    Cerceve.Width = 1;
                    Cerceve.BackColor = Color.White;

                    IPPanel.Controls.Add(Cerceve);
                    Panel Cerceve2 = new Panel();
                    //Cerceve2.Location = new Point(IPPanel.Width-1, 0);
                    Cerceve2.Height = 30;
                    Cerceve2.Width = 1;
                    Cerceve2.Dock = DockStyle.Right;
                    Cerceve2.BackColor = Color.White;
                    IPPanel.Controls.Add(Cerceve2);

                    IPPanel.Click += new EventHandler(IPPanel_Click);
                    IPPanel.BringToFront();
                    //Label Aciklama = new Label();
                    //Aciklama.Dock = DockStyle.Right;
                    //Aciklama.Text = isparcasi.BasTarihi.ToString() + " " + isparcasi.BitTarihi.ToString() + " " + isparcasi.IM.Ad;
                    //IPPanel.Controls.Add(Aciklama);

                    // g.DrawRectangle(kalem, Convert.ToInt32(isparcasi.BasTarihi), Convert.ToInt32(isparcasi.BasTarihi.Ticks), Convert.ToInt32((isparcasi.BitTarihi - isparcasi.BasTarihi).Ticks), 20);
                }

            }


        }
        public void IPPanel_Click(object sender, EventArgs e)
        {

            isParcasiPanel tempt = (isParcasiPanel)sender;

            if (tempt.IsParcasiBilgisi.TatilMi)
            {
                lblAciklama.Text = "Tatil"+
                " \n Başlangıç Tarihi:" + tempt.IsParcasiBilgisi.BasTarihi.ToString() +
                "\n Bitiş Tarihi:" + tempt.IsParcasiBilgisi.BitTarihi.ToString();
               
            }
            else
            {
                lblAciklama.Text = "IM Adı:" + tempt.IsParcasiBilgisi.OlusanStok.Ad +
                                " \n Başlangıç Tarihi:" + tempt.IsParcasiBilgisi.BasTarihi.ToString() +
                                "\n Bitiş Tarihi:" + tempt.IsParcasiBilgisi.BitTarihi.ToString() +
                                " \n Similasyon Başlangıç Tarihi:" + tempt.IsParcasiBilgisi.SimulasyonBilgisi.IslemeTarihi.BaslangicTarihi.ToString() +
                                "\n Similasyon Bitiş Tarihi:" + tempt.IsParcasiBilgisi.SimulasyonBilgisi.IslemeTarihi.BitisTarihi.ToString() +
                                "\n Sipariş No:" + tempt.IsParcasiBilgisi.SiparisBilgi.SiparisNo.ToString() +
                                "\n Operasyon Adı:" + tempt.IsParcasiBilgisi.Op.Ad;
            }
        }

        private void cizelgecizim_Paint(object sender, PaintEventArgs e)
        {
            
            
        }

        private void btnZoomin_Click(object sender, EventArgs e)
        {
            foreach (isMerkeziPanel panel in PanelSinifiList)
            {
                panel.Width = panel.Width * 2;
                foreach (Panel IPPanel in panel.Controls)
                {
                    IPPanel.Width = IPPanel.Width * 2;
                    IPPanel.Location = new Point(IPPanel.Location.X * 2, 0);
                    
                }
            }

        }

        private void btnZoomout_Click(object sender, EventArgs e)
        {
            foreach (isMerkeziPanel panel in PanelSinifiList)
            {
                panel.Width = panel.Width / 2; ;
                foreach (Panel IPPanel in panel.Controls)
                {
                    IPPanel.Width = IPPanel.Width / 2;
                    IPPanel.Location = new Point(IPPanel.Location.X / 2, 0);

                }
            }
        }
    }
}
